In many networked computing environments, client computing devices routinely poll server computing devices to download data from the server devices. For example, electronic mail (“email”) for a number of clients is typically stored on an email server. A given client periodically polls the email server to determine if there are any new email messages to download. If there are, then the client downloads the email messages from the email server.
Polling of the email server can be initiated by the client in at least two ways. First, an application program on the client will usually have a way for the user to manually initiate polling of the email server. For example, there may be a “send/receive email” command or button that when selected by the user, causes the client to poll the email server to determine whether there are any new email messages to be downloaded, and if so, to download the new messages.
Second, the client typically will automatically periodically poll the email server without user initiation, especially where an email application program is actively running on the client. The user may be able to specify how frequently to poll the email server, but otherwise does not control the polling process. For example, the user may indicate that the email server should be polled every ten minutes. Therefore, every ten minutes the client polls the email server automatically, without user intervention, to download any new email messages from the email server.
The number of email messages to be downloaded from the email server can vary over time. For instance, one week the user may not receive many email messages at all, such that polling the server every ten minutes is too frequent. Another week the user may receive many email messages, such that polling the server every ten minutes is not frequent enough to timely download received email messages. Thus, the static timing between automatic, non-user-initiated pollings of the email server is less than ideal in typical usage scenarios.
Furthermore, at other times, the user may be expecting an important email message. In such cases, the automatic polling of the email server every ten minutes may be too infrequent, such that the user instead manually initiates polling frequently to learn whether the expected email message has arrived yet. The user having to manually initiate polling frequently, however, can be inconvenient. For these and other reasons, therefore, there is a need for the present invention.